package cn.iocoder.yudao.module.crossborder.product.enums;

import cn.iocoder.yudao.framework.common.exception.ErrorCode;

/**
 * CrossBorder Product 错误码枚举类
 *
 * crossborder product 系统，使用 1-027-000-000 段
 */
public interface ErrorCodeConstants {

    // ========== 商品管理相关 1-027-001-000 ============
    ErrorCode PRODUCT_NOT_EXISTS = new ErrorCode(1_027_001_000, "商品不存在");
    ErrorCode PRODUCT_ALREADY_EXISTS = new ErrorCode(1_027_001_001, "商品已存在");
    ErrorCode PRODUCT_STATUS_INVALID = new ErrorCode(1_027_001_002, "商品状态无效");
    ErrorCode PRODUCT_PRICE_INVALID = new ErrorCode(1_027_001_003, "商品价格无效");

    // ========== 商品分类相关 1-027-002-000 ============
    ErrorCode CATEGORY_NOT_EXISTS = new ErrorCode(1_027_002_000, "商品分类不存在");
    ErrorCode CATEGORY_ALREADY_EXISTS = new ErrorCode(1_027_002_001, "商品分类已存在");
    ErrorCode CATEGORY_HAS_CHILDREN = new ErrorCode(1_027_002_002, "商品分类存在子分类，无法删除");
    ErrorCode CATEGORY_HAS_PRODUCTS = new ErrorCode(1_027_002_003, "商品分类存在商品，无法删除");

    // ========== 商品品牌相关 1-027-003-000 ============
    ErrorCode BRAND_NOT_EXISTS = new ErrorCode(1_027_003_000, "商品品牌不存在");
    ErrorCode BRAND_ALREADY_EXISTS = new ErrorCode(1_027_003_001, "商品品牌已存在");
    ErrorCode BRAND_HAS_PRODUCTS = new ErrorCode(1_027_003_002, "商品品牌存在商品，无法删除");
    ErrorCode BRAND_STATUS_INVALID = new ErrorCode(1_027_003_003, "商品品牌状态无效");

    // ========== 商品规格相关 1-027-004-000 ============
    ErrorCode SPEC_NOT_EXISTS = new ErrorCode(1_027_004_000, "商品规格不存在");
    ErrorCode SPEC_ALREADY_EXISTS = new ErrorCode(1_027_004_001, "商品规格已存在");
    ErrorCode SPEC_VALUE_NOT_EXISTS = new ErrorCode(1_027_004_002, "商品规格值不存在");
    ErrorCode SPEC_VALUE_ALREADY_EXISTS = new ErrorCode(1_027_004_003, "商品规格值已存在");

    // ========== 商品SKU相关 1-027-005-000 ============
    ErrorCode SKU_NOT_EXISTS = new ErrorCode(1_027_005_000, "商品SKU不存在");
    ErrorCode SKU_ALREADY_EXISTS = new ErrorCode(1_027_005_001, "商品SKU已存在");
    ErrorCode SKU_STOCK_INSUFFICIENT = new ErrorCode(1_027_005_002, "商品SKU库存不足");
    ErrorCode SKU_STATUS_INVALID = new ErrorCode(1_027_005_003, "商品SKU状态无效");

    // ========== 多语言支持相关 1-027-006-000 ============
    ErrorCode PRODUCT_I18N_NOT_EXISTS = new ErrorCode(1_027_006_000, "商品多语言信息不存在");
    ErrorCode PRODUCT_I18N_ALREADY_EXISTS = new ErrorCode(1_027_006_001, "商品多语言信息已存在");
    ErrorCode LANGUAGE_NOT_SUPPORTED = new ErrorCode(1_027_006_002, "不支持的语言");
    ErrorCode TRANSLATION_FAILED = new ErrorCode(1_027_006_003, "翻译失败");

}
